package com.atguigu.practice;

import java.util.LinkedList;
import java.util.Queue;

public class test4 {
    public static ListNode addTwoNumber(ListNode l1,ListNode l2){
        if(l1.val==0&&l2.val==0) return l1;
        long num1=0,num2=0;
        StringBuilder sb1=new StringBuilder();
        StringBuilder sb2=new StringBuilder();
        while(l1!=null){
            sb1.append(l1.val);
            l1=l1.next;
        }
        while(l2!=null){
            sb2.append(l2.val);
            l2=l2.next;
        }
        String s1=sb1.reverse().toString();
        String s2=sb2.reverse().toString();
        num1=Long.parseLong(s1);
        num2=Long.parseLong(s2);
        long num=num1+num2;
        Queue<Long> queue=new LinkedList<>();
        while(num!=0){
            queue.offer(num%10);
            num/=10;
        }
        ListNode head=new ListNode(Integer.parseInt(queue.poll().toString()));
        ListNode cur=head;
        while(!queue.isEmpty())
        {
            ListNode node=new ListNode(Integer.parseInt(queue.poll().toString()));
            head.next=node;
            head=head.next;
        }
        return cur;
    }
    public static void main(String[] args) {
        ListNode l1=new ListNode(0);
        l1.next=new ListNode(8);
        l1.next.next=new ListNode(6);
        l1.next.next.next=new ListNode(5);
        l1.next.next.next.next=new ListNode(6);
        l1.next.next.next.next.next=new ListNode(8);
        l1.next.next.next.next.next.next=new ListNode(3);
        l1.next.next.next.next.next.next.next=new ListNode(5);
        l1.next.next.next.next.next.next.next.next=new ListNode(7);
        ListNode l2=new ListNode(6);
        l2.next=new ListNode(7);
        l2.next.next=new ListNode(8);
        l2.next.next.next=new ListNode(0);
        l2.next.next.next.next=new ListNode(8);
        l2.next.next.next.next.next=new ListNode(5);
        l2.next.next.next.next.next.next=new ListNode(8);
        l2.next.next.next.next.next.next.next=new ListNode(9);
        l2.next.next.next.next.next.next.next.next=new ListNode(7);
        ListNode node=addTwoNumber(l1,l2);
        while(node!=null){
            System.out.println(node.val);
            node=node.next;
        }
    }
}
